Model based techniques may be used for generating tests for verifying the behavior of a computing system. A model includes a set of attributes in addition to values for the attributes and corresponding restrictions on said values or value combinations. The set of valid value combinations defines the space to be tested. In a Cartesian-product based model, the test space is defined as all possible combinations of variable values that are not ruled out by restrictions.
The size of a Cartesian-product based model is the product of the number of values for each attribute (i.e., A1*A2* . . . *An), where An represents the number of valid values for the nth attribute. Depending on the number of attributes in the model, the possible number of values assigned to each attribute and the nature of the restrictions, the size of the model can become prohibitively large, making coverage analysis difficult, inefficient and possibly ineffective.